//commit注释规范
module.exports = {
  ignores: [commit => commit.includes("init")],//忽略 init 开头的 commit
  extends: ["@commitlint/config-conventional"],//使用 conventional changelog 的规范来规范 commit message
  // 校验规则
  rules: {
    "type-enum": [
      2,
      "always",
      // 当我们 commit 提交信息时，就不能再随意写了，必须是 git commit -m "fix: xxx" 符合类型的才可以，需要注意的是类型的后面需要用英文的 :，并且冒号后面是需要空一格的，这个是不能省略的
      [
        "feat",//新功能，新特性
        "fix",//修改bug
        "docs",//文档修改
        "style",//代码格式修改。不是css修改
        "refactor",//代码重构
        "perf",//优化
        "test",//测试用例
        "build",//编译相关的修改
        "ci",
        "chore",//改变构建流程，或者添加工具，依赖库等
        "revert",//回滚
        "wip",
        "workflow",
        "types",
        "release"
      ],
      // 中文版
      // { value: "feat", name: "特性:   🚀  新增功能", emoji: "🚀" },
      // { value: "fix", name: "修复:   🧩  修复缺陷", emoji: "🧩" },
      // { value: "docs", name: "文档:   📚  文档变更", emoji: "📚" },
      // { value: "style", name: "格式:   🎨  代码格式（不影响功能，例如空格、分号等格式修正）", emoji: "🎨" },
      // { value: "refactor", name: "重构:   ♻️  代码重构（不包括 bug 修复、功能新增）", emoji: "♻️" },
      // { value: "perf", name: "性能:    ⚡️  性能优化", emoji: "⚡️" },
      // { value: "test", name: "测试:   ✅  添加疏漏测试或已有测试改动", emoji: "✅" },
      // { value: "build", name: "构建:   📦️  构建流程、外部依赖变更（如升级 npm 包、修改 webpack 配置等）", emoji: "📦️" },
      // { value: "ci", name: "集成:   🎡  修改 CI 配置、脚本", emoji: "🎡" },
      // { value: "chore", name: "回退:   ⏪️  回滚 commit", emoji: "⏪️" },
      // { value: "revert", name: "其他:   🔨  对构建过程或辅助工具和库的更改（不影响源文件、测试用例）", emoji: "🔨" },
      // { value: "wip", name: "开发:   🕔  正在开发中", emoji: "🕔" },
      // { value: "workflow", name: "工作流:   📋  工作流程改进", emoji: "📋" },
      // { value: "types", name: "类型:   🔰  类型定义文件修改", emoji: "🔰" }
    ],
    "type-case": [0],
    "type-empty": [0],
    "scope-empty": [0],
    "scope-case": [0],
    "subject-full-stop": [0, "never"],
    "subject-case": [0, "never"],
    "header-max-length": [0, "always", 72],
  },
  useEmoji: true,
}